package config

import "gopkg.in/ini.v1"

// ESConfig ES连接配置
type ESConfig struct {
	Hosts    string `ini:"hosts"`
	User     string `ini:"user"`
	Password string `ini:"passwod"`
	SetSniff bool   `ini:"set_sniff"`
}

type SQLiteConfig struct {
	PATH    string `ini:"path"`
	ShowSQL bool   `ini:"showsql"`
}

type Config struct {
	ESConfig     ESConfig     `ini:"elasticsearch"`
	SQLiteConfig SQLiteConfig `ini:"sqlite"`
}

var config Config

// NewHandler 获取配置句柄
func NewHandler() *Config {
	return &config
}

// LoadConfigFile 初始化读操作
func LoadConfig(configFile string) (err error) {
	cfg, err := ini.Load(configFile)
	if err != nil {
		return
	}
	cfg.BlockMode = false
	err = cfg.MapTo(&config)
	return
}
